Skip to content

fix(ui): unify mobile Source Control row density across Queue, List, and Tree - #156

Open
ClaudiaFang wants to merge 1 commit into
mainfrom
claude/mobile-source-control-density
Open

fix(ui): unify mobile Source Control row density across Queue, List, and Tree#156
ClaudiaFang wants to merge 1 commit into
mainfrom
claude/mobile-source-control-density

Conversation

@ClaudiaFang

Copy link
Copy Markdown
Member

Summary

  • Establishes a shared mobile row-density model (--scv-mobile-row-min-height/--scv-mobile-row-padding on .scv-root) so Sync Queue rows, Repository List rows, Repository Tree file rows, and tree folder rows all read the same compact height/padding instead of drifting independently.
  • Fixes Repository List mode so .scv-change-item-list stays a single non-wrapping row: .scv-change-path now yields horizontal space first (disproportionate flex-shrink) so the folder path ellipses before the filename does, and flex-wrap: nowrap + overflow: hidden guard the row against any wrap-driven height growth.
  • Normalizes vertical spacing: Queue→Repository no longer double-stacks margin+padding (removed the Queue's redundant bottom margin), and both the Queue and Repository Changes headers now share the same header→first-row bottom padding.
  • Confirmed the mobile sticky Sync bar already reserves its space exactly once (normal-flow sibling after .scv-body, not overlaid) — added a structural regression test rather than a code change.

CSS-only (styles.css); no changes to SourceControlViewModel, selection semantics, sync behavior, tree shaping, scroll persistence, or Queue/Repository responsibilities.

Test plan

  • npx eslint . — 0 errors
  • npx vitest run — 76 files / 958 tests passed (5 new structural tests added in SourceControlView.test.ts: row-density parity across Queue/Tree/List, single-row list-mode content, tree-mode path omission, folder-row class sharing, sync-bar single-instance/placement)
  • npm run build (tsc + Obsidian 1.11.0 compat typecheck + esbuild) — passed
  • Manual visual check on a real mobile client (not available in this environment) — structural/DOM tests only, since jsdom doesn't load styles.css or compute layout

…and Tree

Queue rows already set the compact mobile row baseline; List and Tree file
rows, plus tree folder rows, now read the same shared --scv-mobile-row-*
custom properties instead of drifting independently. List mode's folder-path
suffix now yields horizontal space before the filename (disproportionate
flex-shrink) so long paths ellipsis first and the row never wraps to a second
line. Also normalizes the Queue→Repository vertical gap and both sections'
header→first-row padding to the same values.

CSS-only; no changes to SourceControlViewModel, selection semantics, sync
behavior, tree shaping, scroll persistence, or Queue/Repository
responsibilities.
@sonarqubecloud

sonarqubecloud Bot commented Sep 2, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant